Micron Document
Manual: `F0af`_`[Interface Access Codes ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/understanding.md|anchor=interface-access-codes]`_`f

`!Interface Access Code`! (IFAC) is a per-`F0af`_`[interface`:/page/wiki.mu`path=Interface]`_`f authentication mechanism that filters incoming traffic, allowing multiple Reticulum networks to coexist on the same shared medium.`:cite-ref-0-1-0[`F5bf`_`[1`#cite-note-0-1]`_`f]

Traffic passing through an IFAC-enabled interface is obfuscated. An adversary intercepting a `F0af`_`[packet`:/page/wiki.mu`path=Packet]`_`f between two IFAC-enabled interfaces cannot determine who the packet is addressed to.`:cite-ref-0-1-1[`F5bf`_`[1`#cite-note-0-1]`_`f]

`*`!Note:`! IFAC only controls access to an interface, it does not create an isolated network per se. A packet received through a `F0af`_`[transport node`:/page/wiki.mu`path=Transport_node]`_`f's IFAC-enabled interface may be stripped of its IFAC and deobfuscated before being routed to other interfaces. This also applies to `F0af`_`[announces`:/page/wiki.mu`path=Announce]`_`f; `F0af`_`[nodes`:/page/wiki.mu`path=Node]`_`f on the wider network may be able to reach a `F0af`_`[destination`:/page/wiki.mu`path=Destination]`_`f announced on an IFAC-enabled interface.`*

>>Contents

• `F0af`_`[How it works`#how-it-works]`_`f
• `F0af`_`[Configuration`#configuration]`_`f
• `F0af`_`[References`#references]`_`f

>>How it works

An IFAC-enabled interface derives a shared Ed25519 signing identity from its network name and/or passphrase. It uses this to sign each outbound packet and XOR-mask its headers (except the IFAC itself) and payload using HKDF. On receipt, the interface unmasks the packet, verifies the IFAC and drops any packet with an invalid signature, ensuring only traffic with the correct network name and/or passphrase gets through.`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f]

>>Configuration

To enable IFAC, add either or both of these options to the interface definition:

• `B100`F9d9network_name`f`b – The virtual network name
• `B100`F9d9passphrase`f`b – Authentication passphrase

`F0af`_`[Discoverable interfaces`:/page/wiki.mu`path=Interface|anchor=discoverable]`_`f can publish IFAC credentials with `B100`F9d9publish_ifac = true`f`b. Unless the network is intended to be public, this should be paired with a `F0af`_`[network identity`:/page/wiki.mu`path=Network_identity]`_`f and `B100`F9d9discovery_encrypt = true`f`b.

It is also possible to specify a custom IFAC length in bits (8–512) with `B100`F9d9ifac_size`f`b, but this should not be changed in normal use.

>>References

`:cite-note-0-1`!1.`! `F0af`_`[↑`#cite-ref-0-1-0]`_`f `*Trustless Networking`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/networks.md|anchor=trustless-networking] ↗`_`f
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f `*Interface Access Codes`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/understanding.md|anchor=interface-access-codes] ↗`_`f

>>Reticulum concepts

`F0af`_`[Announce`:/page/wiki.mu`path=Announce]`_`f • `F0af`_`[Blackhole`:/page/wiki.mu`path=Blackhole]`_`f • `F0af`_`[Buffer`:/page/wiki.mu`path=Buffer]`_`f • `F0af`_`[Channel`:/page/wiki.mu`path=Channel]`_`f • `F0af`_`[Destination`:/page/wiki.mu`path=Destination]`_`f • `F0af`_`[Discovery`:/page/wiki.mu`path=Discovery]`_`f • `F0af`_`[Identity`:/page/wiki.mu`path=Identity]`_`f • `F0af`_`[Instance`:/page/wiki.mu`path=Instance]`_`f • `F0af`_`[Interface`:/page/wiki.mu`path=Interface]`_`f • Interface Access Code (IFAC) • `F0af`_`[Link`:/page/wiki.mu`path=Link]`_`f • `F0af`_`[Network identity`:/page/wiki.mu`path=Network_identity]`_`f • `F0af`_`[Node`:/page/wiki.mu`path=Node]`_`f • `F0af`_`[Packet`:/page/wiki.mu`path=Packet]`_`f • `F0af`_`[Path`:/page/wiki.mu`path=Path]`_`f • `F0af`_`[Propagation node`:/page/wiki.mu`path=Propagation_node]`_`f • `F0af`_`[Resource`:/page/wiki.mu`path=Resource]`_`f • `F0af`_`[Stamp`:/page/wiki.mu`path=Stamp]`_`f • `F0af`_`[Transport node`:/page/wiki.mu`path=Transport_node]`_`f